#include <windows.h>
#include <bsp.h>
#include "ipl_disp_common.h"
#include "ipl_disp.h"
#include "hisi6810_gpio.h"

void SelSpi2();
extern void Delay(UINT32);
extern void InitSpi2(int);
extern void SspSendData(UINT16 * data, UINT length);

/******************************************************************
  * Copyright (C), 2005-2007, HISILICON Tech. Co., Ltd.             *
  *                                                                *
  * Description:                                              *
  *    LCD RS setting                                 *
  *                                                                 *
  * Author:                                                     *
  *                                                                 *
  * Version: v0.1                                                   *
  *                                                                 *
  * Date: 2006-11                                                          *
  *******************************************************************/

void SetLdi()
{
	set32(LCDTiming0, VAL_CLCDC_TIMING_0);
	
	set32(LCDTiming1, VAL_CLCDC_TIMING_1);
	
	set32(LCDTiming2, VAL_CLCDC_TIMING_2);
      	
	set32(LCDTiming3, VAL_CLCDC_TIMING_3);   //disable Line-end control register
	
	set32(LCDUPBASE, EDC_LCD_SLAVE);
	
	set32(LCDControl, VAL_CLCDC_CONTROL);
}

void InitLcm(void)
{       
    Delay(4); 
	/***********sample test**************/
	SelSpi2();//SPI2 cs
    
    GpioSetDirection(GPIO_2_5, EGPIO_DIR_OUTPUT);
    GpioSetValue(GPIO_2_5, EGPIO_DATA_HIGH); 
    Delay(4);

    GpioSetDirection(GPIO_2_5, EGPIO_DIR_OUTPUT);
    GpioSetValue(GPIO_2_5, EGPIO_DATA_LOW); 
    Delay(10);

	GpioSetDirection(GPIO_2_5, EGPIO_DIR_OUTPUT);
    GpioSetValue(GPIO_2_5, EGPIO_DATA_HIGH); 
    Delay(150);

	/*********************************/
	InitSpi2(7);
	SspSendData(powerOnData1, sizeof(powerOnData1) >> 1);
    Delay(50);
    SspSendData(powerOnData2, sizeof(powerOnData2) >> 1);
    Delay(50);
    SspSendData(powerOnData3, sizeof(powerOnData3) >> 1);
    Delay(50);
    SspSendData(powerOnData4, sizeof(powerOnData4) >> 1);
}

